const http = require('http');
const fs = require('fs');
const url = require('url');

const io = require('socket.io');
const sql = require('mysql');

// 创建数据池 连接数据库
let db = sql.createPool({host: 'localhost',user: 'root',password: '',database: 'webtest'});

// 创建服务 
let server = http.createServer((req,res)=>{
    
    let {pathname,query} = url.parse(req.url,true);

    if (pathname == '/reg') { // 注册接口  
        let {user,pass} = query;

        // 1 - 检验数据 用户名 3 -32位 
        // 2 - 检查用户名是否重复
        // 3 - 插入数据

        
        if (!/^\w{3,32}$/.test(user)) {
            res.write(JSON.stringify({code: 1,msg: 'user test invalid'}));
            res.end(); // 注意要end
        }else if (!/^\w{3,32}$/.test(pass)) {
            res.write(JSON.stringify({code: 1,msg: 'password invalid'}));
            res.end(); // 注意要end
        } else {
            // 开始查询是否用户名重复
            db.query(`SELECT * FROM users_table WHERE username='${user}'`,(err,data)=>{
                if (err) {
                    res.write(JSON.stringify({code: 1,msg: 'search sql error'}));
                    res.end(); // 注意要end
                } else if (data.length>0) {
                    res.write(JSON.stringify({code: 1,msg: 'unuse uername'}));
                    res.end(); // 注意要end
                } else {
                    // 不重复 就开始插入数据

                    db.query(`INSERT INTO users_table (username,password,online) VALUES('${user}','${pass}',0)`,err=>{
                        if (err) {
                            res.write(JSON.stringify({code: 1,msg: 'sql insert error'}));
                            res.end(); // 注意要end
                        } else {
                            res.write(JSON.stringify({code: 0,msg: 'success'}));
                            res.end(); // 注意要end
                        }
                    });
                }
            });
        }


        console.log('Register',query);
    } else if (pathname == '/log') { // 登录接口
        
        // console.log('Login',query);
        let {user,pass} = query;

        /* if (!/^\w{3,32}$/.test(user)) {
            res.write(JSON.stringify({code: 1,msg: 'user test invalid'}));
            res.end(); // 注意要end
        }else if (!/^\w{3,32}$/.test(pass)) {
            res.write(JSON.stringify({code: 1,msg: 'password invalid'}));
            res.end(); // 注意要end
        } else {

        }
 */

    } else { 
        fs.readFile(`www${req.url}`,(err,data)=>{
            if (err) {
                res.writeHeader('404');
                res.write('Not Found');
            } else {
                res.write(data);
            }

            res.end();
        });
        
    }

});

server.listen(1111,()=>{
    console.log('success on 1111');
});




